#ifndef MINI_BASIC_REGISTRATION_H
#define MINI_BASIC_REGISTRATION_H

#pragma once

#include "stdafx.h"

struct ITypeLib;

LONG CreateInprocSubKey(HKEY hParentKey);
std::wstring CppStringFromIID(REFIID iid);
STDAPI CreateCLSIDKey(const std::wstring& clsidPath, const std::wstring& title, const std::wstring& baseProgId, const std::wstring& verProgId);
STDAPI CreateProgIDKeys(const std::wstring& baseProgId, const std::wstring& verProgId, REFIID clsid);
STDAPI CreateRegistryEntries(REFIID clsid, const std::wstring& baseProgId, ITypeLib* pTypeLib, const WCHAR* desc);
STDAPI CreateRegistryPaths(const std::wstring& baseProgId, REFIID clsid, ITypeLib* pTypeLib, std::wstring& clsidPath, std::wstring& versionedProgId);
STDAPI RemoveRegistryEntries(REFIID clsid, const std::wstring& baseProgId, ITypeLib* pTypeLib);

#endif
